// Kony

#pragma once

#include "CoreMinimal.h"
#include "AbilitySystem/Abilitys/BaseGameplayAbility.h"
#include "BaseSummonAbility.generated.h"

/**
 * 基础召唤能力类
 */
UCLASS()
class GASC_HUANLING_API UBaseSummonAbility : public UBaseGameplayAbility
{
	GENERATED_BODY()
public:
	//获取随从召唤位置
	UFUNCTION(BlueprintCallable)
	TArray<FVector> GetSpawnLocations();
	//从MinionClasses设置的随从数组中随机获取
	UFUNCTION(BlueprintPure, Category = "Summoning")
	TSubclassOf<APawn> GetRandomMinionClass();
	//召唤随从数量
	UPROPERTY(EditDefaultsOnly, Category = "Summoning")
	int32 NumMinions = 5;
	//召唤随从类型
	UPROPERTY(EditDefaultsOnly, Category = "Summoning")
	TArray<TSubclassOf<APawn>> MinionClasses;
	//最小和最大召唤距离
	UPROPERTY(EditDefaultsOnly, Category = "Summoning")
	float MinSpawnDistance = 120.f;
	UPROPERTY(EditDefaultsOnly, Category = "Summoning")
	float MaxSpawnDistance = 350.f;
	//召唤分布扩散角度,默认90度扇形展开
	UPROPERTY(EditDefaultsOnly, Category = "Summoning")
	float SpawnSpread = 90.f;

	
};
